using CodeSaude.Domain.Entities;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;

namespace CodeSaude.Infrastructure.Data.EntityConfig
{
    public class prescricao_atendimento_tempMap : EntityTypeConfiguration<prescricao_atendimento_temp>
    {
        public prescricao_atendimento_tempMap()
        {
            // Primary Key
            this.HasKey(t => t.identificador);

            // Properties
            this.Property(t => t.id_prescricao)
                .IsRequired()
                .HasMaxLength(18);

            this.Property(t => t.nome_item_prescricao)
                .HasMaxLength(255);

            this.Property(t => t.dose_item_prescricao_view)
                .HasMaxLength(20);

            this.Property(t => t.unidade_item_prescricao)
                .HasMaxLength(10);

            this.Property(t => t.caloria_item_prescricao)
                .HasMaxLength(60);

            this.Property(t => t.percentual_item_prescricao)
                .HasMaxLength(10);

            this.Property(t => t.administracao_item_prescricao)
                .HasMaxLength(60);

            this.Property(t => t.diluente_item_prescricao)
                .HasMaxLength(255);

            this.Property(t => t.intervalo_item_prescricao)
                .HasMaxLength(60);

            this.Property(t => t.opcao_item_prescricao)
                .HasMaxLength(60);

            this.Property(t => t.observacao_item_prescricao)
                .HasMaxLength(3000);

            // Table & Column Mappings
            this.ToTable("prescricao_atendimento_temp");
            this.Property(t => t.identificador).HasColumnName("identificador");
            this.Property(t => t.id_prescricao).HasColumnName("id_prescricao");
            this.Property(t => t.id_profissional).HasColumnName("id_profissional");
            this.Property(t => t.id_item_prescricao).HasColumnName("id_item_prescricao");
            this.Property(t => t.categoria_item_prescricao).HasColumnName("categoria_item_prescricao");
            this.Property(t => t.nome_item_prescricao).HasColumnName("nome_item_prescricao");
            this.Property(t => t.quantidade_item_prescricao).HasColumnName("quantidade_item_prescricao");
            this.Property(t => t.dose_item_prescricao).HasColumnName("dose_item_prescricao");
            this.Property(t => t.dose_item_prescricao_view).HasColumnName("dose_item_prescricao_view");
            this.Property(t => t.unidade_item_prescricao).HasColumnName("unidade_item_prescricao");
            this.Property(t => t.caloria_item_prescricao).HasColumnName("caloria_item_prescricao");
            this.Property(t => t.percentual_item_prescricao).HasColumnName("percentual_item_prescricao");
            this.Property(t => t.administracao_item_prescricao).HasColumnName("administracao_item_prescricao");
            this.Property(t => t.diluente_item_prescricao).HasColumnName("diluente_item_prescricao");
            this.Property(t => t.intervalo_item_prescricao).HasColumnName("intervalo_item_prescricao");
            this.Property(t => t.opcao_item_prescricao).HasColumnName("opcao_item_prescricao");
            this.Property(t => t.observacao_item_prescricao).HasColumnName("observacao_item_prescricao");
            this.Property(t => t.id_situacao).HasColumnName("id_situacao");
            this.Property(t => t.data_criacao).HasColumnName("data_criacao");
            this.Property(t => t.Usuario_criacao).HasColumnName("Usuario_criacao");
        }
    }
}
